home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / dev / src / spr12.lha / spr.readme < prev   
Text File  |  1995-10-31  |  2KB  |  59 lines

  1. Short:    Safely?! remove sytem patches (sample code)
  2. Version:  1.2
  3. Uploader: llucius@millcomm.com (L.Lucius)
  4. Author:   llucius@millcomm.com (L.Lucius)
  5. Type:     dev/src
  6.  
  7.                              Safe?! Patch Removal
  8.                                By Leland Lucius
  9.                                      v1.2
  10.  
  11. IMPORTANT!!!!
  12. =============
  13. The code contained in this archive is only an example.  It is not complete and
  14. has never been executed (it does compile though).  Additional error checking
  15. should be added and customized to fit an individual's needs.
  16.  
  17. WHAT IS THIS?
  18. =============
  19. If you frequent the c.s.a.p newsgroup, you have probably noticed that the
  20. subject of safely removing AND freeing memory occupied by a system patch comes
  21. up quite a bit.  And that there are some that believe it to be impossible,
  22. while others (like me) keep thinking that there just has to be a way to do it.
  23.  
  24. Well, I THINK I've found THAT way (actually two).
  25.  
  26. The first, found in files "remove1.c" and "patch1.asm", is an implementation
  27. that is suitable for frequently called routines since it does not use any
  28. additional CPU to track callers.  It however CAN'T call any other routines
  29. outside of the patch (see code).
  30.  
  31. The second, found in files "remove2.c" and "patch2.asm", is only slightly
  32. different than the first.  It keeps track of the callers of the routine and
  33. thus uses slightly more CPU, but it CAN call any other routines.
  34.  
  35. Both implementations SHOULD be callable from interrupts.
  36.  
  37. Both implementations allow for memory deallocation.
  38.  
  39. Both implementations are position independent.
  40.  
  41. NOTICE
  42. ======
  43. This code is released to the public domain.  Hell, I'm not even sure if it'll
  44. work!  B-)
  45.  
  46. DISCUSSION?
  47. ===========
  48. If you find that the code isn't safe (or is), let's discuss it on c.s.a.p so
  49. that everyone interested can remark.  Besides another thread about patch removal
  50. is inevitable anyway, right?  B-)
  51.  
  52. Leland
  53.  
  54. CHANGES
  55. =======
  56. Corrected the vector checks.
  57. Changed to just free the patch if there are no current users.
  58. Corrected patch exit during removal.
  59.